GDB(GNU Debugger)是 Linux/Unix 系統上常用的除錯工具,GEF(GDB Enhanced Features)是 GDB 的外掛,透過 Python 擴充提供更直覺、圖形化的介面。
安裝:
bash -c "$(wget https://gef.blah.cat/sh -O -)" # 安裝 gef
wget -O ~/.gdbinit-gef.py -q https://gef.blah.cat/py # 下載 gef,-q 表示安靜模式,不顯示下載進度
echo source ~/.gdbinit-gef.py >> ~/.gdbinit # 設定為每次開啟 GDB 自動載入 GEF
gdb -q # 驗證是否成功安裝
# 若成功,會出現以下訊息,並切換成【get > 】:
GEF for linux ready, type `gef` to start, `gef config` to configure
使用 GDB 開啟程式:
gdb -q ./chosen1
starti # 從程式第一條指令開始單步執行
registers # 查看暫存器內容
context # 顯示程式目前狀態(暫存器、堆疊、程式碼)
ni # 單步執行一行程式碼(不進入函式)
si # 單步執行一條 CPU 指令
若顯示無權限,則要確認是否為可執行檔
學習來源:https://www.youtube.com/watch?v=FWzWebrkGmk&t